package com.fg.cloud.manager.mapper.factory;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.factory.FactoryUserEntity;
import com.fg.cloud.manager.entry.factory.vo.FactoryUserVo;
import com.fg.cloud.manager.mapper.BaseMapper;


/**
  * Description:厂商用户Mapper
  * @author shaoqiping
  * @date 2017年8月3日上午10:30:31
*/
public interface FactoryUserMapper extends BaseMapper {
	
	/**
	 * Description:厂商用户角色授权
	 * @param userId
	 * @param roleId
	 * @return
	 * @author dingjiang
	 * @date 2017年11月8日下午5:12:29
	 */
	int roleAutho(@Param("userId")Long userId, @Param("roleId")Long roleId);
	
	/**
	  * Description:验证查询
	  * @return FactoryUserEntity
	  * @author shaoqiping
	  * @date 2017年8月11日下午5:33:43
	*/
	public FactoryUserEntity selectToCheck(Long id);
	
	/**
	  * Description:验证重复
	  * @param userName
	  * @param facId
	  * @return
	  * @author shaoqiping
	  * @date 2017年8月28日上午9:31:45
	*/
	public FactoryUserVo selectUserByUserName2(@Param("userName")String userName,@Param("facId")Long facId);
	
	public FactoryUserVo selectUserByUserName3(@Param("userName")String userName,@Param("facId")Long facId,
			@Param("id")Long id);
	/**
	 * 根据用户名获取实体对象
	 * 
	 * @param userName
	 *            用户名
	 * @return FactoryUserVo
	 */
	public FactoryUserVo selectUserByUserName(String userName);
	
	Long removes(@Param("ids")Long[] ids);
	
	long resetPsd(@Param("ids")Long[] ids, @Param("password")String password);

	/**
	 * 登陆
	 * @param userName
	 * @param passWord
	 * @return FactoryUserVo
	 */
	public FactoryUserVo selectUserByLogin(@Param("userName")String userName, @Param("passWord")String passWord);
	
	/**
	 * 查询指定ids获取结果集
	 * 
	 * @param ids
	 *            String[]
	 * @return List <FactoryUserEntity>
	 */
	List<FactoryUserEntity> selectFactoryByIds(String[] ids);
	
	
	/**
	  * Description:根据id删除
	  * @param ids
	  * @return int
	  * @author shaoqiping
	  * @date 2017年8月4日下午5:15:33
	*/
	int deletes(Map<String,Object> map);
	/**
	 * 获取条件查询的记录总条数
	 * @param condition Map<String, Object>
	 * @return long
	 */
	long filterCounts(@Param("condition") Map<String, Object> condition);

	/**
	 * 分页查询，封装查询参数，外部封装查询条件，pageinfo.condition
	 * @param pageinfo
	 * @return List<FactoryUserVo>
	 */
	List<FactoryUserVo> findLists(PageUtils<FactoryUserVo> pageinfo);
	
	/**
	 * 删除用户的角色信息
	 * @param userId
	 * @return int
	 */
	int deleteUserRole(@Param("userList")List<FactoryUserEntity> userList);

	/**
	 * 删除指定用户的指定角色信息
	 * @param userId
	 * @param roleIds
	 * @return int
	 */
	int deleteSpecifiedUserRole(@Param("userId")Long userId, @Param("roleIds")Long[] roleIds);

	/**
	 * 批量新增用户角色信息
	 * @param userId
	 * @param roleIds
	 * @return int
	 */
	int batchInsert(@Param("userId")Long userId, @Param("roleIds")Long[] roleIds);
	
}
